﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GameEngine.Scenes;
using GameEngine.animations;
using Microsoft.Xna.Framework.Graphics;

namespace Imaginarium.gui
{
    public class GUIParameters
    {
        #region ColumnNames
        public static string[] ColNameBR()
        {
            string[] colNameBR = new string[5];
            colNameBR[0] = "Player";
            colNameBR[1] = "Gained exp";
            colNameBR[2] = "Total exp";
            colNameBR[3] = "Gained job exp";
            colNameBR[4] = "Total job exp";
            return colNameBR;
        }
        #endregion

        #region Margins
        public static int[] marginsZERO = new int[] { 0, 0, 0, 0 };
        public static int[] marginsGeneralBluePanel = new int[] { 12, 8, 10, 8 };

        public static int[] marginsBattleCommandGUI = marginsGeneralBluePanel;
        public static int[] marginsSkillSelectGUI = marginsGeneralBluePanel;
        public static int[] marginsSkillDescriptionGUI = marginsGeneralBluePanel;
        public static int[] marginsEnemiesInfoGUI = marginsGeneralBluePanel;
        public static int[] marginsPlayersInfoGUI = new int[] { 100, 8, 10, 8 };
        public static int[] marginTargetSelectBasePanel = marginsGeneralBluePanel;
        public static int[] marginsBattleResultGUI = marginsGeneralBluePanel;
        public static int[] marginsGameOverGUI = marginsGeneralBluePanel;
        #endregion

        #region weights
        public static float[] weightsSkillSelectGUI = new float[] { 2, 1 };
        public static float[] weightsSkillDescriptionGUI = new float[] { 3, 1, 1 };
        public static float[] weightsBattleInfoGUI = new float[] { 1, 2 };
        public static float[] weightsPlayerLineInfoGUI = new float[] { 3, 1, 1 };
        #endregion

        #region BackgroundInfo
        public static string forestBackground = "forest background";
        public static string battleCommandGUI = "battle commands gui";
        public static string skillSelectGUI = "skill select gui";
        public static string targetSelectGUI = "select target gui";
        public static string battleInfoGUI = "battle info gui";
        public static string battleResultGUI = "battle result gui";
        public static string gameOverGUI = "game over gui";
        public static byte alphaBattleResultBackground = 150;
        public static byte alphaGameOverBackground = 150;
        #endregion
        #region Backgrounds
        public static Background loadBackground(string backgroundName)
        {
            Background background = new Background();
            Animation backgroundAnim = new Animation(ImaginariumGame.getInstance().Content.Load<Texture2D>(backgroundName));
            DetailAnimation backgroundDetAnim = new DetailAnimation(background, "forest", backgroundAnim);
            background.detailAnimations.Add(backgroundDetAnim);
            return background;
        }
        public static Background backgroundForest()
        {
            return loadBackground(forestBackground);
        }
        public static Background backgroundBattleCommandGUI()
        {
            return loadBackground(battleCommandGUI);
        }
        public static Background backgroundSkillGUI()
        {
            return loadBackground(skillSelectGUI);
        }
        public static Background backgroundSelTargetGUI()
        {
            return loadBackground(targetSelectGUI);
        }
        public static Background backgroundBattleInfoGUI()
        {
            return loadBackground(battleInfoGUI);
        }
        public static Background backgroundBattleResultGUI()
        {
            Background battleResultBackground = loadBackground(battleResultGUI);
            battleResultBackground.color.A = alphaBattleResultBackground;
            return battleResultBackground;
        }
        public static Background backgroundGameOverGUI()
        {
            Background gameOverBackground = loadBackground(gameOverGUI);
            gameOverBackground.color.A = alphaGameOverBackground;
            return gameOverBackground;
        }
        #endregion

        #region Rates
        public static float expApplyRatePerMilisecond = 0.5f / 1000;
        #endregion

    }
}
